package com.sgb.knowledgeshare;

import android.app.Application;
import com.alibaba.android.arouter.launcher.ARouter;
import com.swgk.core.BaseAppApplication;
import com.swgk.core.base.api.BaseApiSourceImpl;
import com.swgk.core.base.model.preference.BasePreferenceSource;

public class ShareApplication extends BaseAppApplication {

    @Override
    protected BaseApiSourceImpl getApiSoure() {
        return new BaseApiSourceImpl();
    }

    @Override
    protected String getBaseUrl() {
        return BuildConfig.BASE_URL;
    }

    @Override
    protected String getDbPath() {
        return null;
    }

    @Override
    protected <T> Class<T> getPreferenceSourceClass() {
        return (Class<T>) BasePreferenceSource.class;
    }

    @Override
    public void onCreate() {
        super.onCreate();
        init(this);
        ShareConfig.init(this, BuildConfig.BUILD_TYPE);
    }

    /**
     * 初始化
     */
    private void init(Application application) {
        //初始化数据存储
//        MMKV.initialize(application);
        //初始化路由，这两行必须写在init之前，否则这些配置在init过程中将无效
        if (BuildConfig.DEBUG) {
            // 打印日志
            ARouter.openLog();
            // 开启调试模式(如果在InstantRun模式下运行，必须开启调试模式！线上版本需要关闭,否则有安全风险)
            ARouter.openDebug();
            ARouter.printStackTrace();// 打印日志的时候打印线程堆栈
        }
        ARouter.init(application);
    }
}
